The field of this invention is networking, and in particular, systems and methods for large scale networking.
The architectures presently employed for certain large networks, such as the Internet, often do not scale well. That is, as the size of the network grows, its structure fails to adequately accommodate the growth in demand for services provided on the network, the routing of messages to new nodes, etc. As used herein, the term xe2x80x9cnetworkxe2x80x9d is a set of computers that are coupled such that they can communicate with each other. Examples of networks include a local area network (LAN) and a wide area network (WAN). As used herein, a WAN can include one or more subnetworks (e.g., LANs) that are coupled together. A subnetwork interfaces to the rest of the WAN through one or more xe2x80x9cgateways.xe2x80x9d An example of a gateway is a host (a computer with a network address) that is coupled both to a LAN and a WAN, and which handles traffic between devices that comprise the LAN and other devices coupled to the WAN that are not part of the LAN. An example of a LAN is a network that serves a set of users in a single building, and that operates in accordance with the Ethernet protocol that is well-known in the art. An example of a WAN is the Internet. The Internet is a large scale network of subnetworks that communicate using the Internet Protocol version 4 (xe2x80x9cIPv4xe2x80x9d) described in Douglas E. Comer, Internetworking with TCP/IP, vol.1 , Prentice Hall 1991. As used herein, the term xe2x80x9ccoupledxe2x80x9d means directly or indirectly connected. Thus, if A is directly connected to B, then A is said to be coupled to B. Likewise, if A is directly connected to B, and B is directly connected to C, then A is said to be coupled to C.
The scalablility of a network is often at least partly influenced by its addressing scheme, i.e., the way a node (a device that is coupled to the network) is located on the network. An example of an addressing scheme is IPv4 , which is used on the Internet. IPv4 specifies an address of 32 bits arranged in four octets, i.e., four numbers, each having a value between 0 and 255. An example of an IPv4 address is 132.56.9.234. The number of nodes and other entities on the Internet that use, or could use, a unique address are proliferating at such a rate so as to exhaust the number of addresses available. Furthermore, experience with Internet address administration indicates that practical concerns demand an address space that is substantially larger than the number of devices that require addresses. As used herein, a xe2x80x9cdevicexe2x80x9d is any hardware entity capable of receiving and/or sending information over a network. Examples of a device include a host, a client, a handheld appliance that includes a microprocessor, etc.
In response to the problems related to the inadequacies of the IPv4 addressing scheme, the Internet Engineering Task Force (xe2x80x9cIETFxe2x80x9d, the body that sets the standards for the Internet) has proposed a new standard, Internet Protocol version 6 (xe2x80x9cIPv6xe2x80x9d), which his described in Stephen A. Thomas, IPing and the TCP/IP Protocols, John Wiley 1996. IPv6 uses an address space comprising sixteen octets, rather than the four used by IPv4. This provides a substantially greater number of addresses for use on the network. However, IPv6 has not been widely adopted for the Internet, largely because its adoption would require a large scale replacement of hardware and software that is presently in place on the Internet. Instead, stopgap solutions have been adopted that can be handled by the existing technology base, but which are temporary and will not be very satisfactory as the Internet develops further.
For example, to overcome the shortage of address space, Internet Service Providers (xe2x80x9cISPxe2x80x9d) xe2x80x9clendxe2x80x9d an IPv4 addresses to each subscriber that logs in. The subscriber does not have a permanently assigned address, but is rather assigned a temporary address. The temporary address assignment remains effective during the subscriber""s session on the network. Another known solution Network Address Translation (xe2x80x9cNATxe2x80x9d), which permits the ISP to offer IPv4 addresses to its subscribers even though those addresses are not unique on the Internet, and may be used by subscribers of other ISPs. As packets pass between a subscriber and the WAN (e.g., the Internet) through the ISP, the ISP translates from the address used by the subscriber to a temporarily available address that is unique to the WAN, and vice versa. In the future, an increasing number of users can be expected to be online all the time and will want to publish their addresses so that other can reach them directly. NAT disadvantageously does not allow a user to publish a permanently assigned, globally unique address by which the user can be reached directly from another node on the WAN.
The Federal Communications Commission (xe2x80x9cFCCxe2x80x9d) has ruled that telephone service subscribers must be permitted to switch from one service provider to another without being forced to change to a new telephone number. That capability, which has been retrofitted at some expense in the telephone network, is disadvantageously not present today in the Internet. A customer that switches from one ISP to another usually is forced to incur the expense and inconvenience of changing her IP address. This is disadvantageous because the IPv4 address embodies information about the internal structure of the network, including the relationship of the ISP to the WAN. This means that in some cases, when an organizational change occurs entirely within the Internet, such as an ISP obtaining a different access provider to the WAN, users are required to change to a new IP address. This can entail considerable expense and inconvenience for users, especially corporate customers who have hundreds or thousands of machines with network addresses. Some large customers have refused to make the change. In this case, it is the service provider that pays a penalty because the ISP address space becomes more fragmented and requires more resources to properly route packets between its users and the WAN.
The present IP and proposed addressing schemes combine device identity information with information about the network structure in the neighborhood of the device, disadvantageously precluding global addressing for mobile devices. Thus, it is not possible to change the location of a device without also changing its address. Also, an IP address presently identifies a device, but not the true endpoint of communication, which can lie within the software of that device. This disadvantageously makes it difficult at best for network service assets to determine the type of traffic that is being carried in order to provide the appropriate quality of service. For example, it may be acceptable for file transfer packets to be delivered with slight delays and with little loss in quality of service. On the other hand, voice or interactive video packets cannot be delivered with substantial delays without significantly degrading the quality of service experienced by the communicating users. Network service providers need to know what type of traffic a given packet or set of packets carries in order to properly route the packet in the appropriate fashion (e.g., with the correct level of priority). Known systems identify types of traffic by having routers and switches snoop into TCP and higher level protocols, which is disadvantageous because the presence of this software in the network prevents subscribers from changing to another protocol when new technology makes such a change advantageous. This disadvantageously reduces the robustness of the network service, and restricts the freedom of the service provider to invent services that are customized and/or customizable for individual data flows and individual applications.
A known method of providing network services is xe2x80x9ctunneling.xe2x80x9d A packet that is sent to an ultimate destination X is encapsulated with address information that delivers the packet to device Y. Device Y strips the encapsulated address information from the packet, and forwards the packet to X. Tunneling is used, for example, when a packet needs to be sent to a device X through a network that doesn""t recognize the address or protocol being used to communicate X. Thus, it is sent to Y, which by prearrangement, knows how to properly dispose of the packet (send it to X). For example, a sender S and a gateway Y are coupled to each other through a WAN. X is coupled to gateway Y through a LAN. In other words, Y is the gateway between the WAN and the LAN, and knows how to route packets addressed to any device on the LAN. X is not visible to the WAN, i.e., the WAN would not know how to route a packet addressed to X. However, X is visible to gateway Y. Thus, sender S encapsulates the packet to X with address information to gateway Y, and sends it into the WAN. The WAN routes the packet to gateway Y, which strips the encapsulated address information, and sees that the packet is to be forwarded to X, and does so. Tunneling is disadvantageous because it requires every sender that wishes to tunnel to know the full address of the ultimate destination of a packet, as well as forwarding arrangements for the packet through the WAN. In the above example, sender S has to know that it cannot use X""s address explicitly, but rather has to tunnel to reach X. Sender S must also know that Y is a suitable intermediary for communications with X. X is not visible to the WAN; that Y can forward the packet to X; and Y""s address. Keeping every tunneling sender informed with this type of up-to-date information can be a complex task that does not scale well. A tunneled packet must be encapsulated with at least two sets of address information (X""s and Y""s.) With multiple tunneling steps, each packet can acquire a large overhead of several successive encapsulations. This overhead can be inefficient. A better system would provide packet forwarding and other network services to a sender without requiring the sender to know the full address of the ultimate destination of each of its packets, and without incurring the overhead of successive encapsulation.
More effective, long term solutions should address problems such as ensuring a sufficient address space to meet future needs; providing a persistent, globally unique identity for devices that can be coupled to the network; providing a separate address for each communication endpoint adapted to be coupled to the network; providing network address portability for customers who change their service provider; supporting mobile hosts; supporting hosts that have more than one network interface; and provide a definition of network service capable of accommodating technological changes that will provide new opportunities for network users. For example, the telephone system comprises a circuit-switched network that carries any information that can be encoded in a 3.5 kHz bandwidth. This service definition, which was created at the start of the 20th century, was flexible and capable enough to accommodate the many changes in telephony technology that have occurred throughout this century. A similar service definition should be made for a network such as the Internet. The service definition for the Internet should be at the network layer (i.e., the IP protocol). In this light, transport protocols such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) should be regarded as applications that act as users of the network service. This approach is exemplified by the IPSEC security protocol, in which the payload of a packet is encapsulated and encrypted within a secure protocol. Under IPSEC, the payload is defined to include the transport protocols and their respective payloads. It is appropriate that IPSEC come under the purview of users of the network, and therefore that it be viewed as an application of the network service.
In accordance with an embodiment of the present invention, every global-valid address (such as an IP address) contains device identity in a first field and device location information in a second field. The addressing scheme in accordance with an embodiment of the present invention advantageously supports dynamic correction of location information. For example, a mobile telephone has a unique device identity, as well as location information in its address field. When the mobile telephone moves, the geographical location information in the address field becomes outdated, but the device identity remains unchanged. An embodiment of the present invention advantageously updates the geographical location information in the address field so as to maintain its accuracy. The device identity field is of a sufficient size to address a plurality of networked devices per person.
In one embodiment of the present invention, the network is an interconnected set of subnetworks, such as the Internet. For example, the network includes LANs that are interconnected to comprise a WAN. One type of device on a first LAN is recognizable by the WAN, i.e., the WAN can explicitly route a message to the device. In accordance with an embodiment of the present invention, at least every device that is recognized by the WAN has a globally unique identity. A device that is recognizable by the WAN is called a xe2x80x9cglobal device.xe2x80x9d Examples of a global device include fixed and wireless telephones that can communicate with other telephones coupled to the WAN. A device that is not recognizable by the WAN is called a xe2x80x9clocal device.xe2x80x9d Examples of local devices include a printer that is dedicated to a LAN and not addressable outside the LAN, a shared disk drive on a LAN that is not addressable from the WAN. Note than in certain embodiments, a printer and/or a shared disk drive on a LAN can be global devices, provided they are addressable from the WAN. In accordance with an embodiment of the present invention, a range of device identities is allocated for local devices that are connected to a LAN, but which are not directly visible from the whole WAN.
In one embodiment, where there are multiple sources of communication within a device, each communication endpoint is separately identified. For example, each application that communicates through the WAN (e.g., an IP telephony application, network-based scheduling application, etc.) has its own identifier.
In accordance with one embodiment of the present invention, at least one segment of the address location field is allocated to users (e.g., individual users, network administrators, service providers) to accommodate proprietary packet routing methods. For example, a large corporation might wish to structure the location address to reflect the way in which its network is administered. The present invention advantageously provides a network definition that scales well, and will facilitate exploiting opportunities presented by the development and deployment of new networking technologies.